1. Technical Field of the Invention
The present invention generally pertains to a method or arrangement for synthesizing and exploring alternative system architectures executing the functional specification of a system in the form of a task graph. More particularly, the invention pertains to a method of the above type wherein each synthesized architecture must be able to execute all of the tasks in each of a plurality of task specifications. Even more particularly, the invention pertains to a method of the above type for synthesizing a large pool of architectures, and then identifying the better architectures therein with respect to prespecified criteria, in a comparatively short period of time.
2. Description of Related Art
As is well known in the art, a computer system typically has a large number and diversity of hardware and software resources that may be employed to execute or complete a particular task specification. An example of a task specification is a set of tasks that must be carried out in order to operate a cellular phone for wireless communication. Generally, many different combinations of hardware and software resources are available to execute a particular task specification, including combinations of only hardware resources, of only software resources, and mixtures of both types of resources. However, while the number of workable combinations may be quite large, some resource combinations are more useful than others; also some resource combinations may have undesirable characteristics or unintended consequences. The comparative merits of different resource combinations are generally determined by timing or other constraints imposed upon implementation of a set of tasks.
As is further known in the art, architecture space exploration is the process of mapping a task specification to a set of resources and time schedules, wherein the set of tasks in the specification may be represented as a graph of interrelated processes and communications. The set of resources comprises objects such as software, memory elements, special application specific integrated circuits (ASICs) and processors. Each solution provided by the mapping process has a corresponding architecture that incorporates a particular combination of resource components and that assigns respective tasks thereto. The architecture also schedules the timing of task completion. In the past, efforts were made to automate the process of selecting a suitable distribution of resources to define an architecture within the universe of possible architecture solutions known as the design space. Architecture synthesis algorithms were developed for automating the process of selecting the distribution of resources to define the architecture. In some cases the universe may include millions of possible architectures. Some of these efforts are described, for example, in “Research Strategies for Architecture Synthesis and Partitioning of Real-Time Systems,” Jakob Axelsson, IDA Technical Report, 1996.
In certain important applications, it is necessary to provide an architecture that is capable of executing multiple specifications, wherein each specification is modeled as a task graph. The modeling of each specification as a task graph allows designers to implement a single architecture that must satisfy multiple task graphs. For example, in mobile communications an architecture may be required to execute both GSM (Global System Mobile communications) and CDMA (Code Division Multiple Access) protocols. Designing an architecture capable of executing both these protocols could be of considerable value. However, in order to provide such a capability it is necessary to (1) effectively model the multiple specifications and (2) determine how the architecture synthesis algorithm is to explore and generate architectures for multiple specifications.
In another situation pertaining to multiple task graphs, a designer having multiple choices for implementing a task may prefer to have an architecture synthesis tool select the best choice or choices for implementing the task. For example, a designer could prefer to let the architecture synthesis tool decide whether to use the MPEG-3 or the MPEG-4 encoding scheme for video telephony. In this situation, the final selected architecture only needs to support the execution of exactly one of these compression algorithm options. Accordingly, it would be very desirable to provide an architecture synthesis tool for exploring better possible architectures when there is a choice of task implementations, and then selecting the architecture that provides the best implementation. Again, the two main issues to address are the way to model the specification, and how the architecture synthesis algorithm uses the model for searching and generating the architecture.